Name(s)__________________________________________ Period _______ Date _____________________

	Practice PT Overview and Rubric - Improve Your App		
Background

We have reached the end of the programming unit! Congrats! This means you have a solid foundation in programming and hopefully feel ready to try your hand at something creative of your own choosing. 

As a way to wrap up the unit, we are going to practice for the AP® Create Performance Task. This will be something you need to complete at the end of the course with very minimal assistance from a teacher, so by practicing now, you can get used to the process of completing the work necessary for the AP Create Performance Task.

You will submit this project and write responses to the reflection questions in the style of the AP Create Performance Task. The document below has been constructed to mimic the AP Create Performance Task. Some but not all of the language is pulled directly from the AP document. Some of the prompts have been modified slightly or simply omitted for clarity and to better fit the project.
Overview

Programming is a collaborative and creative process that brings ideas to life through the development of software. Programs can help solve problems, enable innovations, or express personal interests. In this Performance Task, you will be developing a program which builds on or extends ideas found in a previous project. Your development process should include iteratively designing, implementing, and testing your program. You are strongly encouraged to work with another student in your class.

Please note that once this performance task has been assigned as an assessment (rather than as practice), you are expected to complete the task with minimal assistance from anyone other than your collaborative partner. A collaborative partner can be someone working on the same project or a different project. They are just another set of eyes to provide feedback. Try to use your classmates as resources as much as possible during this practice, in order to get used to this process.

You will be provided class time to complete and submit the following:
●	A video of your program running
●	Written responses about your program and development process
●	Program Code

Your teacher will share submission guidelines that include suggestions for creating video and PDF files.  

Project Description

You are going to create a project of your own design. It is strongly suggested that you pick one of the previous programs you created and build on it. However if you want to take inspiration from a past project and start something new, that is all right as well. 

Here is a list of all the past projects and some of the “mini apps"you have worked on to help you in getting started:

You may work alone or in pairs, but some large part of the final program must be your own, as you will have to write about the work you did by yourself. 

You will submit your own project and written reflection, but you can receive help and advice from classmates.
General Requirements

This performance task requires you to develop a program on a topic that interests you or one that solves a problem. It is strongly recommended that a portion of the program involve some form of collaboration with another student in your class. Your program development process must involve a significant portion of work completed independently that requires a significant level of planning, designing, and program development. 

You are required to:
●	Iteratively design, implement, and test your program.  
●	Independently create at least one significant part of your program. 
●	Create a video that displays the running of your program and demonstrates its functionality. 
●	Write responses to questions about your program. 
●	Include your entire program code.

Programming Requirements

Your program must demonstrate a variety of capabilities and implement several different language features that, when combined, produce a result that cannot easily be accomplished without computing tools and techniques. Your program should draw upon mathematical and logical concepts, such as use of numbers, variables, mathematical expressions with arithmetic operators, logical and Boolean operators and expressions, decision statements, iteration, and/or collections.   

Your program must demonstrate: 
●	Use of several effectively integrated mathematical and logical concepts, from the language you are using.
●	Implementation of an algorithm that integrates other algorithms and integrates mathematical and/or logical concepts.
●	Development and use of abstractions to manage the complexity of your program (e.g., procedures; abstractions provided by the programming language; APIs).
Submission Requirements

1. Video 
Submit one video in .mp4, .wmv, .avi, or .mov format that demonstrates the running of at least one significant feature of your program. Your video must not exceed 1 minute in length and must not exceed 30MB in size. 

2. Written Responses
Submit one PDF document in which you respond directly to each prompt. Clearly label your responses 2a – 2e in order. Your response to all prompts combined must not exceed 750 words, exclusive of the Program Code. (The 750 words does not include the code you wrote for your program.)

Program Purpose and Development 

a. Identify the programming language and identify the purpose of your program.  Explain your video using one of the following: 
●	A written summary of what the video illustrates OR
●	An audio narration in your video. If you choose this option, your response to the written summary should read, “The explanation is located in the video.” (Approximately 150 words) 

b. Describe the incremental and iterative development process of your program, focusing on two distinct points in that process. Describe the difficulties and/or opportunities you encountered and how they were resolved or incorporated. In your description, clearly indicate whether the development described was collaborative or independent. At least one of these points must refer to independent program development; the second could refer to either collaborative or independent program development. (Approximately 200 words)        

c. Capture and paste the program code segment that implements an algorithm (marked with an oval in 2e below) that is fundamental for your program to achieve its intended purpose. Your code segment must include an algorithm that integrates other algorithms and integrates mathematical and/or logical concepts. Describe how each algorithm within your selected algorithm functions independently, as well as in combination with others, to form a new algorithm that helps to achieve the intended purpose of the program. 
(Approximately 200 words)

d. Capture and paste the program code segment that contains an abstraction you developed (marked with a rectangle in 2e below). Your abstraction should integrate mathematical and logical concepts. Explain how your abstraction helped manage the complexity of your program. (Approximately 200 words) 

Program Code
e. Capture and paste your entire program code into the PDF.
●	Mark with an oval the segment of program code that implements the algorithm you created for your program that integrates other algorithms and integrates mathematical and /or logical concepts.
●	Mark with a rectangle the segment of program code that represents an abstraction you developed. 
●	Include comments or citations for program code that has been written by someone else.

Name(s)_____________________________________________ Period _______ Date _____________________

	Rubric - Improve Your App		

Component	1	2	3	Score	
Video					
Video Format	Video is not .mp4, .wmv, .avi, or .mov format. The video is longer than 1 minute in length. The video is greater than 30MB.

	Some of the following criteria are met: Video is .mp4, .wmv, .avi, or .mov format. The video is less than a minute in length. The video is less than 30MB in size.	Video is .mp4, .wmv, .avi, or .mov format. The video is less than a minute in length. The video is less than 30MB in size.		
Demonstrates Significant Feature	Video does not demonstrate how the program works or the main features of the program.

	Video gives a general demonstration of how the program works and the main features of the program but does not show many details.	Video gives in-depth demonstration of how the program works and the main features of the program.		
Planning Document					
Project Design	The description and/or sketch/digital image of the design are simplistic and lacking in details. Not enough information is given to realistically build a program from.	The description and/or sketch/digital image are limited in details. While it might be possible to program from the design, there are too many details missing for the programming task to be easy.

	The description and/or sketch/digital image are rich in details. A programmer would have few questions and find it easy to work from this design.		
Feedback Guide	The feedback guides are incomplete. The feedback given is not detailed and does not reference the rubric.	There is some detailed feedback on the feedback guides but it does not reference the rubric. 	A complete copy of the feedback guide is completed for student and collaborative partner.   In-depth feedback is given and the rubric is referenced to support feedback. 

		
Individual Written Responses					
Format of Written Response	Written responses are not submitted in a PDF. The length of the responses exceeds 750 words. The responses are not labeled. The responses are not in order. The student did not write “the explanation is located in the video” when they answered question (a) in the video narration.	Some of the following criteria are met: Written responses are submitted in a PDF document. The length of the responses is less than 750 words in length.  The responses are labeled and in order. If the answer to question (a) is included as video narration, then on the written response, the student wrote “the explanation is located in the video.”
	Written responses are submitted in a PDF document. The length of the responses is less than 750 words in length.  The responses are labeled and in order. If the answer to question (a) is included as video narration, then on the written response, the student wrote “the explanation is located in the video.”		
a. Program Purpose	The write-up or video does not identify the programming language or does not identify the purpose of the program.	The video identifies the programming language but does not describe in detail what the purpose of the program is.	The write-up or video narration identifies the programming language. The write-up or video narration identifies in detail the purpose of the program.
  		
b. Program Development 	The response gives very few details about the incremental and iterative development process of the program.	The response gives some details about the incremental and iterative development process of the program.
	The response fully describes the incremental and iterative development process of the program. 		
b. Two Focus Points	The program development overview highlights one distinct point in that process. The description indicates whether the development described was collaborative or independent but does not give many details. 	The program development overview highlights two distinct points in that process. The description indicates whether the developments described were collaborative or independent but does not give many details. At least one of the points referred to is independent program development.
	The program development overview focuses on two distinct points in that process. The description clearly indicates whether the developments described were collaborative or independent. At least one of the points referred to is independent program development.		
b. Difficulties and Opportunities	The response gives very minimal description of the difficulties and/or opportunities encountered and how they were resolved or incorporated.
	The response describes the difficulties and/or opportunities encountered and how they were resolved or incorporated but lacks details. 
	The response fully describes the difficulties and/or opportunities encountered and how they were resolved or incorporated.		
c. Complex Algorithm	The write-up DOES NOT include a program code segment 
show an algorithm that integrates two or more algorithms and integrates mathematical and/or logical concepts

In the full program code, the complex algorithm code segment is marked with an oval.	The write-up includes a program code segment 
show an algorithm that integrates two or more algorithms and integrates mathematical and/or logical concepts

In the full program code, the code segment is NOT marked with an oval.  	The write-up includes a program code segment 
show an algorithm that integrates two or more algorithms and integrates mathematical and/or logical concepts

In the full program code, the code segment is marked with an oval.		
c. Explain Complexity	The write-up provides a correct line‐ by‐line summary of the selected algorithm OR a minimal description of an algorithm.	The write-up identifies the algorithm’s purpose in the program and accurately describes how the algorithm serves to achieve this purpose.	The write-up identifies the algorithm’s purpose in the program and accurately describes how at least two of the algorithms function independently as well as in combination to create a new algorithm to achieve the program’s purpose.
		
c. Mathematical and Logical Concepts	The write-up explains with very few details the mathematical and logical concepts used to develop the algorithm. 
	The write-up explains with a few details the mathematical and logical concepts used to develop the algorithm. 	The write-up describes in detail the mathematical and logical concepts used to develop the algorithm.		
d. Abstraction Code Segment	In the full program code, the abstraction code segment is marked with a rectangle but the write-up does not include a program code segment showing the section of the code that implements an abstraction. 	The write-up includes a program code segment that contains an abstraction developed by the programmer.  However the abstraction is NOT marked by a rectangle in the full program code.	The write-up includes a program code segment that contains an abstraction developed by the programmer.  The abstraction is marked by a rectangle in the full program code.

d. Explain Abstraction	The write-up explains with few details how the abstraction helped manage the complexity of the program.	The write-up explains in some detail how the abstraction helped manage the complexity of the program.
	The write-up explains in detail how the abstraction helped manage the complexity of the program. 		
e. Site Code	Includes few comments or citations for program code that has been written by someone else. Includes few comments or citations of program code written before start of the project.
	Includes some comments or citations for program code that has been written by someone else. Includes some comments or citations of program code written before start of the project.	Includes comments or citations for program code that has been written by someone else. Includes comments or citations of program code written before start of the project.